Hack The Box - Driver
...

Driver.png

Resumen
...

La máquina Driver fue abordada inicialmente mediante un escaneo de los puertos expuestos utilizando la herramienta nmap. Se identificó que el puerto 80 alojaba una página web accesible. Antes de ingresar, se presentó una alerta solicitando credenciales de acceso. Una vez proporcionadas, se obtuvo acceso a la página, que resultó ser la interfaz de administración de una impresora. Dentro de la página web, se descubrió una sección que permitía la carga de archivos. Dado que se detectó la disponibilidad del servicio smb, se procedió a cargar un archivo scf (Shell Command File), logrando obtener las credenciales hasheadas del usuario "tony". Utilizando John The Ripper, se descifraron las contraseñas y se logró acceder a la máquina mediante evil-winrm, capturando así la flag de usuario.

Durante la fase de escalada de privilegios, se empleó la herramienta winPEAS, la cual reveló que el servicio spoolsv estaba activo y vulnerable a un CVE identificado como CVE-2021-1675. Al localizar un exploit correspondiente en un repositorio, se procedió a clonarlo y enviarlo a la máquina objetivo. La ejecución exitosa del exploit resultó en la creación de un nuevo usuario con privilegios. Posteriormente, mediante el uso de evil-winrm, se estableció conexión con este usuario privilegiado, facilitando así la obtención de la última flag.

Keywords: nmap, exploit, CVEs, samba, evil-winrm, crackmapexec, privilege escalation in Windows

Palabras Clave: nmap, exploit, CVEs, samba, evil-winrm, crackmapexec, Escalda de privilegios en Windows

Realizado por Luis Ramos Moncayo, a fecha 2 de Febrero de 2024

Reconocimiento
...

Nmap
...

Se emplea la herramienta Nmap para hacer el reconocimiento de puertos de la máquina Driver y de esta forma conocer cuales están abiertos.

> sudo nmap -p- --open -sS --min-rate 1000 -vvv -n -Pn 10.10.11.106 -oG allPorts
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-01 12:01 CET
Initiating SYN Stealth Scan at 12:01
Scanning 10.10.11.106 [65535 ports]
Discovered open port 80/tcp on 10.10.11.106
Discovered open port 135/tcp on 10.10.11.106
Discovered open port 445/tcp on 10.10.11.106
SYN Stealth Scan Timing: About 23.56% done; ETC: 12:03 (0:01:41 remaining)
SYN Stealth Scan Timing: About 49.12% done; ETC: 12:03 (0:01:03 remaining)
Discovered open port 5985/tcp on 10.10.11.106
SYN Stealth Scan Timing: About 74.72% done; ETC: 12:03 (0:00:31 remaining)
Completed SYN Stealth Scan at 12:03, 115.64s elapsed (65535 total ports)
Nmap scan report for 10.10.11.106
Host is up, received user-set (0.035s latency).
Scanned at 2024-02-01 12:01:04 CET for 116s
Not shown: 65531 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT     STATE SERVICE      REASON
80/tcp   open  http         syn-ack ttl 127
135/tcp  open  msrpc        syn-ack ttl 127
445/tcp  open  microsoft-ds syn-ack ttl 127
5985/tcp open  wsman        syn-ack ttl 127
Read data files from: /usr/bin/../share/nmap
Parámetros Nmap
-p-Escanea todos los 65535 puertos
–openSolo muestra los puertos abiertos
-sSEscaneo TCP SYN
–min-rateEnvío mínimo de paquetes
-vvvMuestra la información del escaneo mientras está ejecutándose
-nNo realiza resolución DNS
-PnNo realiza Host Discovery
-oGExporta el output en un archivo con formato grepeable

Se confirma que tiene abiertos los siguientes puertos abiertos: 80,135,445,5985; por lo que mediante el archivo grepeable que creó anteriormente, se hara uso de una función personalidada en la .zshrc, que extrae y copia a la clipboard los puertos resultantes de la primera consulta nmap para luego pegarlos en una siguiente.

> extractPorts allPorts

[+] Extracting Information....

	[+] IP Address: 10.10.11.106
	[+] Open Ports: 80,135,445,5985

[+] Ports copied to clipboard

Con esta siguiente consulta se buscará enumerar que servicios están expuestos y sus respectivas versiones.

> sudo nmap -sCV -p80,135,445,5985 10.10.11.106 -oN targeted
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-02-01 12:04 CET
Nmap scan report for 10.10.11.106
Host is up (0.034s latency).

PORT     STATE SERVICE      VERSION
80/tcp   open  http         Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
| http-auth: 
| HTTP/1.1 401 Unauthorized\x0D
|_  Basic realm=MFP Firmware Update Center. Please enter password for admin
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Microsoft-IIS/10.0
135/tcp  open  msrpc        Microsoft Windows RPC
445/tcp  open  microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
5985/tcp open  http         Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
Service Info: Host: DRIVER; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time: 
|   date: 2024-02-01T18:04:59
|_  start_date: 2024-02-01T17:58:35
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
|_clock-skew: mean: 6h59m59s, deviation: 0s, median: 6h59m59s
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 48.28 seconds
Parámetros Nmap
-sCConjunto de Scripts básicos de reconocimiento
-sVVerificación de las versiones de los servicios expuestos
-oNGuarda el output en un archivo

Enumeración
...

Puerto TCP 80 - HTTP
...

Se enumera la página principal que está expuesta en el puerto TCP 80. Al ingresar de primera, solicita unas credenciales. Se ingresa credenciales básicas, entre esas admin:admin y se accede a la página que administra actualizaciones de firmware impresoras.

1_admin_autenticacion.png

2_Página_principal.png

Explotación
...

SMB Share – SCF File Attacks
...

Enumerando la página, se observa que se puede cargar archivos en la sección de Firmware Updates, conociendo que el servicio smb está expuesto, se prueba con un archivo con extensión SCF (Shell Command Files). Por lo que se crea un servicio SMB en la máquina de atacante mediante el uso de impacket.

4_Archivo_scf.png

5_activamos_smbserver_espera_peticion.png

Se carga el archivo con extensión .scf y se da click en Submit. Se revisa la terminal en la cual se tiene activo el servicio smb, obteniendo unas credenciales que están hasheadas.

6_Enviamos_peticion.png

7_hash_credentials.png

John The Ripper - Descifrado de Credenciales de usuario
...

Se procede a pasar las credenciales hasheadas a un archivo que se llamará hash.

8_hash_file.png

Mediante John The Ripper se descifra las credenciales del usuario tony.

9_user_credentials.png

Conociendo las credenciales, se prueba su validades para poder conectarse de manera remota por el servicio winrm con el uso de crackmapexec. Se confirma que las credenciales son válidas.

10_valid_credentials.png

evil-winrm - Shell as tony
...

Se conecta a la máquina mediante el uso de evil-winrm, obteniendo una shell como el usuario tony. Se procede a capturar la user flag.

11_shell_as_tony_user_flag.png

Escalada de privilegios
...

Enumeración de Máquina Windows - winPEAS
...

Con el comando net user se puede revisar los usuarios existentes en el sistema.

12_o_revisamos_usuarios.png

Mediante el comando whoami /priv se puede enumerar los permisos que posee el usuario actual. Y mediante el comando whoami /group se puede obtener los grupos asignados al usuario actual. Y para obtener toda la información de una sola vez se utiliza el comando whoami /all

12_p_Revisamos_grupos_permisos.png

Observando que no existen permisos ni grupos que se pueda aprovechar para escalar privilegios, se procede a utilizar la herramienta de winPEAS, que va a enumerar todo el sistema en busca de vulnerabilidades que permita la escalada. Se pasa el archivo a la máquina víctima y lo ejecutamos guardando el log en un archivo.

12_q_pasamos_winPEAS.png

13_Ejecutamos_winPEAS.png

Al pasar el archivo resultante del análisis realizado por el winPEAS, se procede a leerlo para poder observar que vulnerabilidades se pueden aprovechar. En este caso, se observa que spoolsv está activo.

14_pasamos_reporte_winPEAS.png

15_Leemos_winPEAS_spoolsv.png

CVE-2021-1675 | spoolsv - Shell como usuario privilegiado
...

Realizando una búsqueda en Google, se logra ver que existe un CVE cuyo código es CVE-2021-1675. Teniendo el código del CVE-2021-1675, se encuentra un repositorio donde existe un exploit que aprovecha esta vulnerabilidad.

16_clonamos_repo_exploit.png

Se pasa el exploit a la máquina víctima.

17_pasamos_exploit.png

Leyendo el README.md del repositorio, se observa los pasos para ejecutar el exploit. Se ejecuta, y mediante las credenciales se coloca, crea el nuevo usuario con permisos de nt authority system.

18_ejecutamos_script_pasos_github.png

Se revisa que se haya creado correctamente el usuario "pwned", y con la ayuda de crackmapexec se confirma que se puede obtener conexión a ese usuario mediante winrm.

19_creación_usuario_privilegiado.png

Con evil-winrm se conecta con las credenciales creadas en el exploit anterior (pwned:Pwned!$). Se confirma que sea un usuario perteneciente a grupos privilegiados. De esta manere se logra escalar privilegios y finalmente capturar la root flag.

20_shell_as_priv_user.png

21_root_flag.png